/*
    给定一个数组
    编写一个函数
    来计算他的最大N个数和最小N个数的和
    需要对数组进行去重

    说明
    第一行输入M
    M表示数组大小
    第二行输入M个数
    表示数组内容
    第三行输入N表示需要计算的最大最小N的个数

    输出描述
    输出最大N个数和最小N个数的和

    例一：
        输入
        5
        95 88 83 64 100
        2

        输出
        342

        说明
        最大2个数[100 95] 最小2个数[83 64]
        输出342

      例二
        输入
        5
        3 2 3 4 2
        2

        输出
          -1
          说明
          最大两个数是[4 3]最小2个数是[3 2]
          有重叠输出为-1

  */
 let m = 5;
//  let arr = [95,88,83,64,100];
 let arr = [3,2,3,4,2];
 let n = 2;

const findSum = (m,arr,n) => {
  let result = -1;
  let set = new Set();
  arr.forEach((v) => {
    set.add(v)
  })
  let newArr = Array.from(set);

  if(newArr.length >2*n){
    result = 0;
    newArr.sort((a,b) => {
      return a-b;
    })
    console.log(newArr[0]+newArr[1]+newArr[newArr.length-1] + newArr[newArr.length-2])
  }else{
    console.log(-1)
  }
}
findSum(m,arr,n)